home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FishMarket 1.0
/
FishMarket v1.0.iso
/
fishies
/
526-550
/
disk_540
/
parm
/
parm_src.lzh
/
libstart.asm
< prev
next >
Wrap
Assembly Source File
|
1991-07-03
|
2KB
|
112 lines
;/*
; * libstart.asm - Copyright © 1991 by S.R. & P.C.
; *
; * Created: 22 Sep 1990 20:54:22
; * Modified: 03 Jul 1991 18:54:51
; *
; * Make>> make
; */
include 'exec/types.i'
include 'exec/resident.i'
include 'exec/nodes.i'
include 'exec/libraries.i'
PARMVERSION equ 1
PARMPRI equ 0
cseg ; romtag must be in first hunk
public _ParMLibName
public _ParMLibId
public _ParMLibInitTab
moveq #0,d0 ; don't let them run me
rts
public _ParMLibRomTag
_ParMLibRomTag:
dc.w RTC_MATCHWORD
dc.l _ParMLibRomTag
dc.l endtag
dc.b RTF_AUTOINIT
dc.b PARMVERSION
dc.b NT_LIBRARY
dc.b PARMPRI
dc.l _ParMLibName
dc.l _ParMLibId
dc.l _ParMLibInitTab
endtag:
dc.w 0 ;to get things aligned to 4 byte boundary
; For libraries:
; library base in D0
; segment list in A0
; execbase in A6
; Initial startup routine for Aztec C.
; NOTE: code down to "start" must be placed at beginning of
; all programs linked with Aztec Linker using small
; code or small data.
public .begin
.begin
public _ParMLibInit
_ParMLibInit:
movem.l d0-d7/a0-a6,-(sp)
movem.l d0/a0,-(sp) ;save library parameters
bsr _geta4 ;get A4
lea __H1_end,a1
lea __H2_org,a0
cmp.l a1,a0 ;check if BSS and DATA together
bne start ;no, don't have to clear
move.w #((__H2_end-__H2_org)/4)-1,d1
bmi start ;skip if no bss
move.l #0,d0
loop
move.l d0,(a1)+ ;clear out memory
dbra d1,loop
start
move.l a6,_SysBase ;put where we can get it
lea dos_name,a1 ;get name of dos library
jsr -408(a6) ;open the library any version
move.l d0,_DOSBase ;set it up
bne 3$ ;skip if okay
move.l #$38007,d7 ;AG_OpenLib | AO_DOSLib
jsr -108(a6) ;Alert
bra 4$
3$
jsr __main ;call the startup stuff
4$
add.w #8,sp ;pop args
movem.l (sp)+,d0-d7/a0-a6
rts ;and return
dos_name:
dc.b 'dos.library',0
public _geta4
_geta4:
far data
lea __H1_org+32766,a4
rts
public __main,__H0_org
dseg
public _SysBase,_DOSBase
public __H1_org,__H1_end,__H2_org,__H2_end
bss _SysBase,4
bss _DOSBase,4
end